<?php
if(!defined('IN_DISCUZ')) { //安全判断
	exit('Access Denied');
}

/* 拍卖插件 ajax处理
* @Author: dm
* @Date:   2014-05-15 09:30:20
* @Last Modified by:   ldm
* @Last Modified time: 2014-05-30 23:57:37
*/
// 判断是否为ajax请求
if(!(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest')){
	exit();
}
require_once "core.php";
require_once "paipai.class.php";
// error_reporting(E_ALL);
$core = new safe_weitao_plugin_iweitao_paipai;
$globalclass = new threadplugin_iweitao_paipai;
// 处理动作
$act = $core->_get('act');
// 参数
$tid = $core->_get('tid');
$gid = $core->_get('gid');

/***********积分变换类型***************/ 
// RCV 		积分转账接收
// TFR 		积分转账转出
/***********积分变换类型***************/ 

/*******************出价ajax返回值意义*************************
	status = 1 			交易参与成功
	status = -2 		该交易暂未开始或已结束
	status = -3 		对不起，交易价格不合法
	status = -4 		对不起，请加价后操作
	status = -5 		对不起，您的积分不足
	status = -6 		对不起，商品发布人不可以参与拍卖
	status = -7 		对不起，当前交易冻结中
	status = -8 		为登录操作
	status = 其它 		交易参与失败
**********************************************************/
/**
 * act 参数为buy 进行出价处理
 */
if($core->_get('act') == 'buy') {
	//是否登录
	if($_G['uid']=='0'){
		exit("-8");
	}

	//获取商品详细信息
	//商品id
	$gid = $core->_get('gid');
	//拍卖出价
	$price = $core->_get('price');
	//帖子id
	$tid = $core->_get('tid');

	// 检测交易是否冻结
	if(!$globalclass->check_goods_status($tid,'code')) {
		exit("-7");
	} 	
	// 获得拍卖商品信息
	$array = $globalclass->getgoodsdetail($gid);

	$time = time();
	// 发布人不能参与
	if($array['uid'] == $_G['uid']) {
		exit("-6");
	}

	// 交易未开始
	if($array['date_start'] > $time) {
		exit("-2");
	}
	// 交易已结束
	if($array['date_end'] < $time) {
		exit("-2");
	}
	// 出价小于商品起拍价
	if($price < $array['price']) {
		exit("-3");
	}
	//判断交易价格是否合法
	$add_price = $price - $array['price'];

	if($add_price < $array['add_price']) {
		exit("-4");
	}
	


	// 默认方式
	if($array['identify'] == 'default' || $array['identify'] == '') {
		$query = DB::query("SELECT price FROM `".DB::table('paipai_buy')."` WHERE `uid` = ".$_G['uid']." and `gid`=".$gid." ORDER BY price DESC, `time` DESC");
		
		if($re = db_get_one($query)){//不是第一次出价
			$alreadypay = $re['price'];
			$needprice = $price-$alreadypay;
		}else{//第一次出价
			$needprice = $price;
		}
	
		if(!checkcredit($needprice)) {
			exit("-5");
		}

		// 出价成功，扣除出价积分
		// updatemembercount($_G['uid'],array("extcredits$credit" => "-$needprice"));
		updatemembercount($_G['uid'],array("extcredits$credit" => "-$needprice"),true,'TFR',$_G['uid'],'积分转账转出','拍卖插件，出价成功，扣除买家出价积分');

	}

	
	//当前出价
	$updatearray = array(
		'price' => $price,
	);

	//var_dump($updatearray);
	//更新当前当前出价 price字段
	DB::update("paipai_goods",$updatearray,"`gid` = '$gid'");
	// 将出价表当前拍卖商品出价状态改为2 ，表示价格出局
	DB::query("UPDATE `".DB::table("paipai_buy")."` SET `status` = '2' WHERE `gid` = '$gid'");
	//出价信息插入数据库
	DB::query("INSERT INTO ".DB::table("paipai_buy")." VALUES(null,'".$_G['uid']."','$gid','$tid','".$_G['username']."','$price','$time','1')");


	notifity($_G['uid'],"商品 <a target='_blank' href='forum.php?mod=viewthread&tid=$tid'>".$array['title']."</a>  出价成功, 本次拍卖出价金额为".$price);
	exit("1");
	//返回操作结果
	
} else if($core->_get('act') == 'checkout') {	//结算交易

	if(!$globalclass->check_goods_status($tid,'code')) {
		exit("对不起，当前交易冻结中");
	}
	// 商品信息
	$array = $globalclass->getgoodsdetail($gid);
	$time = time();
	if($array['status'] >= 3) {
		exit("该订单已结算");
	}
	if($array['status'] == 2) {
		exit("商品流拍");
	}
	if($_G['uid'] != $array['uid']) {
		exit("您无权进行该操作");
	}
	if($array['date_end'] > $time) {
		exit("对不起，交易尚未结束");
	}

	

	/*********************************************/
	/**************设置订单确认 status=3**********/
	/*********************************************/
	// 获得最高出价订单
	$max = $globalclass->getgoods_maxbuy_by_tid($tid);
	if($max){
		$orderid = $max['orderid'];
		// 订单确认，设置status=3 
		DB::query("UPDATE `".DB::table("paipai_buy")."` SET `status` = '3' WHERE `orderid` = '$orderid'");
		// 更新拍卖商品状态为3=>交易成功
		DB::query("UPDATE `".DB::table("paipai_goods")."` SET `status` = '3',`orderid` =  '$orderid' WHERE `gid` = '$gid'");


	}else{//商品流拍
		// 设置商品流拍 status == 2
		DB::update("paipai_goods",array('status' => 2),array('gid' => $gid));

		notification_add($array['uid'],'post',"拍卖的商品 <a href='forum.php?mod=viewthread&tid=".$tid."'>".$array['title']."</a> 拍卖时间结束，无人出价，商品流拍",array(),$system = 1);

		exit('商品流拍');
	}

	//获得出价最高的用户uid
	$noncount = $max['uid'];
	//获取出价最高的积分
	$globalprice = $max['price']; 
	//获得出价最高的用户uid
	$globaluid = $max['uid'];	
	
	
	/*********************************************/
	/**************返回出局的出价积分*************/
	/*********************************************/
	// 获得所有参与竞拍用户uid
	$query = DB::query("SELECT uid,status FROM `".DB::table('paipai_buy')."` WHERE `tid`='$tid' GROUP BY uid");
	$order_uids = db_get_array($query);
	
	if($order_uids){
		foreach($order_uids as $v) {
			// 排除拍卖成功者订单
			if($v['uid'] == $noncount) continue;
			// 出局订单返回积分操作
			if($v['status'] == 2){
				// 获得最高出局积分
				$query = DB::query("SELECT uid,price FROM `".DB::table('paipai_buy')."` WHERE `tid`='$tid' and uid=".$v['uid']." order by price desc,time desc limit 1");
				$order_return = db_get_one($query);
				if($order_return && $array['identify'] == 'default'){
					//返回积分
					$return_price = $order_return['price'] ? $order_return['price'] : 0;
					updatemembercount($v['uid'],array("extcredits$credit" => "$return_price"),true,'RCV',$_G['uid'],'积分转账转入','拍卖插件，竞拍失败，出局订单返回积分');
					// 返回积分提示信息
					notification_add($v['uid'],'post',"您参与的拍卖商品 <a target='_blank' href='forum.php?mod=viewthread&tid=$tid'>".$array['title']."</a>  竞拍失败, 返回拍卖出价金额为".$return_price." 请注意查收",array(),$system = 1);
				}


			}
			

		}
	}

	// 结算成功，提示卖家发货
	notification_add($_G['uid'],'post',"竞拍商品 <a href='forum.php?mod=viewthread&tid=$tid'>".$array['title']."</a> 结算交易成功，请您尽快发货",array(),$system = 1);
	// 结算成功，提示买家注意收货，或联系卖家收货
	notification_add($max['uid'],'post',"竞拍商品 <a href='forum.php?mod=viewthread&tid=$tid'>".$array['title']."</a> 结算交易成功，已提示卖家发货，请注意查收，或联系卖家 <a href='home.php?mod=space&do=index&uid=".$array['uid']."'>".$array['username']."</a> 收货",array(),$system = 1);
	
	exit("竞拍商品 ".$array['title']." 结算交易成功，请您尽快发货");


} else if($core->_get('act') == 'pay') { //确认收货
	// 商品及拍得订单信息
	$order = $globalclass->get_goods_buy_order_by_tid($tid);

	if(!$order || !isset($order['orderid']) || $order['order_uid'] != $_G['uid']){
		exit('订单不存在或无权访问');
	}
	
	if(!$globalclass->check_is_freeze($tid)){
		exit('商品已冻结，请联系管理员');
	}
	
	if($order['status'] == 4) {
		exit("确认收货成功!");
	}
	if($order['identify'] == 'default') {
		// 更改订单状态
		DB::update("paipai_buy",array('status' => 4),array('orderid' => $order['orderid']));
		// 更新商品status状态
		DB::update("paipai_goods",array('status' => 4),array('orderid' => $order['orderid']));
		// 支付卖家积分
		updatemembercount($order['uid'],array("extcredits$credit" => $order['order_price']),true,'RCV',$_G['uid'],'积分转账转入','拍卖插件，确认收货，支付拍卖款项');
		// 卖家提示
		notification_add($order['uid'],'post',"商品 <a href='forum.php?mod=viewthread&tid=$tid'>".$order['title']."</a> 已确认收货，积分已打入您账号，请注意查收！  本交易完成！",array(),$system = 1);
		// 买家提示
		notification_add($order['order_uid'],'post',"商品 <a href='forum.php?mod=viewthread&tid=$tid'>".$order['title']."</a> 确认收货成功，交易完成！",array(),$system = 1);

		exit('确认收货成功，交易完成');
	}

	exit('确认收货失败！');


} else if($core->_get('act') == 'return') { 
	
	// $order = $globalclass->getorderdetail_by_orderid($orderid);
	// 商品及拍得订单信息
	$order = $globalclass->get_goods_buy_order_by_tid($tid);
	
	// 交易冻结
	if(!$globalclass->check_is_freeze($orderid['tid'])){
		exit('交易冻结中，请联系管理员');
	}
	// 当前登录不是竞拍所得用户
	if($order['order_uid'] != $_G['uid']) {
		exit("您没有权限进行该操作");
	}
	// 商品或订单状态不是3，状态错误，联系管理员
	if($order['status'] != 3 || $order['order_status'] != 3) {
		exit("无法请求退款申请,交易状态错误，请联系管理员");
	}
	// 冻结
	DB::update('paipai_goods',array('freeze'=>1,),"tid = $tid");
	DB::update('paipai_buy',array('status'=>-1),"orderid = " . $order['orderid']);
	// 
	// 通知管理员
	notification_add(1,'post',"<a href='forum.php?mod=viewthread&tid=$tid'>【您有一笔新的退款申请】</a>",array(),$system = 1);
	// 通知买家，退款进行中
	notification_add($order['order_uid'],'post',"您的竞拍商品<a href='forum.php?mod=viewthread&tid=$tid'>".$order['title']."</a> ， 退款申请已提交，请等候管理员处理",array(),$system = 1);
	// 通知卖家，退款进行中
	notification_add($order['uid'],'post',"您出售的商品<a href='forum.php?mod=viewthread&tid=$tid'>".$order['title']."</a> ，订单 已提交退款申请，等候管理员处理，如有问题，请联系管理员",array(),$system = 1);
	exit("退款已申请至管理员，请耐心等待");

} else if($act == 'show_end'){ //显示当前end

	// 商品和竞拍成功订单信息
	//$array = $globalclass->getgoodsdetail_by_tid($tid);
	$array = $globalclass->get_goods_buy_order_by_tid($tid);
	// var_dump($array);
	// 等待拍卖开始
	if($array['date_start'] > time()){
		exit();
	}
	
	// 商品流拍 status == 2
	if($array['status'] == 2){	
		exit('<span style="color:orange;font-size:16px;font-weight:700;">商品流拍</span>');
	}
	// 退款处理中
	if($array['order_status'] == -1 && $array['status'] == 3){
		exit('<span style="color:orange;font-size:16px;font-weight:700;">退款处理中</span>');
	}
	// 退款完成
	if($array['order_status'] == -2 && $array['status'] == 4){
		exit('<span style="color:orange;font-size:16px;font-weight:700;">退款完成</span>');
	}
	// 结算交易 status == 3 
	if($array['status'] == 3){
		// 卖家
		if($_G['uid'] == $array['uid']){
			exit('<span style="color:orange;font-size:16px;font-weight:700;">结算成功，请发货后联系买家</span>');
		}
		// 买家
		if($array['order_uid'] && $_G['uid'] == $array['order_uid']){
			exit("<span style=\"color:orange;font-size:16px;font-weight:700;\">结算成功，请联系卖家发货</span> （<b><a href='javascript:void(0);' id='pay'>确认收货</a> | <a href='javascript:void(0);' id='return'>申请退款</a></b>）");
		}
		exit('<span style="color:orange;font-size:16px;font-weight:700;">结算成功,等待交易完成</span>');
	}
	// 交易支付完成 status == 4 
	if($array['status'] == 4){	
		exit('<span style="color:orange;font-size:16px;font-weight:700;">交易支付完成</span>');
	}
	//交易冻结
	if($array['freeze'] == 1){	
		exit('<span style="color:orange;font-size:16px;font-weight:700;">交易冻结中</span>');
	}


	// 交易时间结束，登录后显示等待结算 或 等待交易完成 
	if(time() > $array['date_end'] && $array['status'] == 1 && $_G['uid'] > 0) {
		// 最高出价
		$max = $globalclass->getgoods_maxbuy_by_tid($tid);
		// 卖家登录，提示结算交易
		if($max && $array['uid'] == $_G['uid']){
			// 等待结算
			if($max['status'] == 1){
				$end = "<button type='button' class='pn' id='checkout' ><strong>结算交易</strong></button>";
				exit($end);
			}

		}
		// 买家登录，提示等待结算
		if($max && $max['uid'] == $_G['uid']){
			$end = '<div><h1 style=\'color:orange;\'>恭喜竞拍成功！<span >等待卖家结算</span></h1></div>';
			exit($end);
		}
		//没有出价，设置流拍
		if(!$max){	
			// 设置商品流拍 status == 2
			DB::update("paipai_goods",array('status' => 2),array('gid' => $gid));

			notification_add($array['uid'],'post',"拍卖的商品 <a href='forum.php?mod=viewthread&tid=".$tid."'>".$array['title']."</a> 拍卖时间结束，无人出价，商品流拍",array(),$system = 1);

			exit('<span style="color:orange;font-size:16px;font-weight:700;">竞拍结束，等待结算</span>');
		}

		// 普通登录
		exit('<span style="color:orange;font-size:16px;font-weight:700;">竞拍结束，等待交易完成</span>');
	}
	// 交易进行中，登录后显示竞拍按钮，否则提示登录后参与
	if($_G['uid'] > 0){
		exit('1');
	}else{
		exit('<span style="color:#333;font-size:16px;font-weight:400;">请 <a href="member.php?mod=logging&action=login">登录</a> 后查看</span>');
	}

}